Geonodes Part 2

image-39.png


УРОВЕНЬ 1: ОСНОВЫ РАБОТЫ С НОДАМИ

Введение в Уровень 1

Цель уровня: Освоить интерфейс Geometry Nodes, понять основные операции с геометрией, научиться работать с точками и инстансами, начать создавать свои первые процедурные модели.

Требования: Уровень 0 полностью пройден, базовое понимание Blender UI

Время обучения: 3-4 недели при регулярной практике (3-5 часов в день)

Ожидаемый результат: Вы сможете создавать простые процедурные модели, рассеивать объекты, работать с базовыми трансформациями


МОДУЛЬ 1.1: ИНТЕРФЕЙС И БАЗОВЫЕ ОПЕРАЦИИ

Концепция: Geometry Node Tree как Data Pipeline

Geometry Nodes работают как конвейер обработки данных:

GROUP INPUT (параметры и исходная геометрия)
    ↓
NODE 1 (трансформирует данные)
    ↓
NODE 2 (дальше трансформирует)
    ↓
NODE N (финальная обработка)
    ↓
GROUP OUTPUT (результат)

Важно: Данные поступают и обрабатываются в строгом порядке, слева направо, создавая final geometry.

Ключевые ноды

Group Input / Group Output

Назначение:

  • Group Input — получить параметры и исходную геометрию объекта
  • Group Output — вывести финальную геометрию, которая будет отображена

Понимание:
Каждый Geometry Node tree имеет обязательно эти две ноды. Они определяют начало и конец pipeline.

Важные сокеты в Group Input:

  • Geometry (белый) — исходная геометрия объекта
  • Все остальные сокеты — параметры (создаются вами)

Пример базовой структуры:

Group Input (Geometry)
    ↓
Set Position (deform geometry)
    ↓
Group Output (Geometry)

Join Geometry

Назначение: Объединить несколько геометрий в одну

Входы:

  • Geometry (множественные входы!) — несколько геометрий

Как использовать:

  1. Shift+A → Geometry → Join Geometry
  2. Подключите несколько выходов геометрии к сокетам Join Geometry
  3. Join Geometry автоматически создаст новые входы при подключении

Пример:

Geometry Input → Join Geometry
    ↑                ↓
Distribute Points + Instance on Points → Group Output

Realize Instances

Назначение: Конвертировать инстансы в реальную геометрию

Когда нужен:

  • Перед экспортом (если нужна реальная геометрия, а не инстансы)
  • Перед применением модификатора в Blender (если объекты исчезают)
  • Когда другие приложения не поддерживают инстансы

ВАЖНО: Инстансы очень быстро рендерятся, реальная геометрия — медленнее!

Instance on Points
    ↓
Realize Instances (only if needed!)
    ↓
Group Output

Geometry to Instance

Назначение: Конвертировать геометрию в инстанс (оптимизация)

Когда использовать:

  • Сложная геометрия которую нужно повторить много раз
  • Оптимизация производительности
  • Подготовка к scatter операциям

Лучшие туториалы (УРОВЕНЬ 1.1)

Официальные источники

  1. Simon Thommes - Geometry Nodes from Scratch - Blender Studio

    • Сводка: Официальный курс разработчика GN. Первые 2 часа посвящены интерфейсу и базовым операциям. Профессиональное объяснение с примерами.
    • Версия: Актуально для 3.0+
    • Изучите: UI, node tree, Group Input/Output, базовые операции
    • Проекты: Простые примеры для понимания
  2. Blender Manual - Geometry Nodes Index

    • Сводка: Официальная документация Blender. Полное описание всех нод и концепций.
    • Важность: ВЫСОКАЯ — используйте как справочник

YouTube туториалы

  1. Erindale - Navigating the Geometry Nodes UI

    • Сводка: Профессионал показывает интерфейс и workflow. Быстрое введение за 20 минут.
    • Длительность: ~20 минут
    • Уровень: Новичок
    • Изучите: Все горячие клавиши, быструю навигацию
  2. Bradley Animation - Getting Started

    • Сводка: Johnny Matthews объясняет базовые операции. Часть большого курса.
    • Длительность: ~30 минут (первый видеоролик серии)
    • Уровень: Новичок-Начинающий
    • Проекты: Простые примеры
  3. CG Cookie - ASSEMBLE Course Introduction

    • Сводка: Профессиональный курс с фокусом на практику. Первая часть бесплатна.
    • Длительность: 4+ часа полный курс
    • Уровень: Начинающий-Средний
    • Стоимость: Платный (но первые уроки бесплатны)
  4. Blender Guru - Procedural Fundamentals

    • Сводка: Andrew Price объясняет базовые концепции procedural thinking. Фундаментально важно.
    • Длительность: ~30 минут
    • Уровень: Новичок
    • Рекомендация: Смотрите несколько видео этого автора
  5. Default Cube - Geometry Nodes Basics

    • Сводка: Базовое введение для совсем новичков. Легко понять.
    • Длительность: ~15 минут
    • Уровень: Новичок
  6. I Wish I Knew This Before Using Geometry Nodes

    • Сводка: Опытный пользователь делится 10 советами которые сэкономят вам месяцы обучения.
    • Длительность: ~20 минут
    • Уровень: Все уровни (полезные даже для профессионалов)
    • Важность: ОЧЕНЬ ВЫСОКАЯ

Письменные руководства

  1. Blender Glossary - Common Problems and Solutions

    • Сводка: Подробное руководство по распространённым проблемам.
    • Формат: Статья с примерами
    • Полезность: Высокая
  2. DevFlowStack - Geometry Nodes Setup

    • Сводка: Техническое руководство по применению модификаторов.
    • Форма: Текстовое руководство
    • Уровень: Начинающий-Средний

Распространённые проблемы и решения

Проблема 1: "Объекты исчезают при Apply modifier"

Почему происходит:
Geometry Nodes часто выводят инстансы, а не реальную геометрию. Инстансы — это ссылки на другие объекты, а не реальная полигональная сетка. Когда вы применяете модификатор, инстансы теряются.

Решение:

  1. Способ 1 (быстрый): Добавьте Realize Instances перед Group Output

    Instance on Points
        ↓
    Realize Instances
        ↓
    Group Output
    
  2. Способ 2: После применения модификатора используйте Ctrl+Shift+A → Make Instances Real

  3. Способ 3: Если инстансы нужны, оставьте их — они рендерятся быстрее!


Проблема 2: "Join Geometry не находится"

Почему происходит:
Новички ищут через правый клик на canvas, а эта нода не в том меню.

Решение:

  1. Нажмите Shift+A (добавить ноду)
  2. Выберите Geometry категорию
  3. Найдите Join Geometry

Или проще: выберите провод Geometry и начните писать "join" — Blender покажет нужную ноду.


Проблема 3: "Node order issues — неправильный порядок нод"

Почему происходит:
Geometry Node tree имеет определённый порядок обработки. Если ноды подключены неправильно, можно получить неожиданный результат или ошибку.

Решение:

  1. Проследите зелёный провод (Geometry) — это главный поток данных
  2. Убедитесь что Group Output подключена в конце
  3. Логически думайте: "Что я хочу сделать первым? Что вторым?"

Пример правильного порядка:

Geometry Input
    ↓ (исходная геометрия)
Distribute Points (создаёт облако точек)
    ↓ (облако точек)
Instance on Points (помещает объект на каждую точку)
    ↓ (инстансы)
Realize Instances (делает реальную геометрию)
    ↓
Join Geometry с исходной геометрией
    ↓
Group Output

Проблема 4: "Group Input не появляется в modifier panel"

Почему происходит:
Параметры Group Input не видны в Properties потому что:

  1. Не все сокеты Group Input подключены
  2. Сокеты имеют неправильный тип
  3. Параметр имеет невидимое имя

Решение:

  1. Подключите сокет Group Input к ноде
  2. Убедитесь что сокет имеет правильный тип (сравните с документацией)
  3. Shift+L или drag сокета на Group Input для создания видимого параметра
  4. Переименуйте параметр (правый клик на сокет → Rename Socket)

Лайфхаки от профессионалов для УХ1

Организация Node Tree

  1. Ctrl+J — автоматически создать Frame (рамку) вокруг выбранных нод

    • Используйте для группировки логически связанных нод
    • Улучшает читаемость сложных деревьев
    • Названия frames помогают ориентироваться
  2. Node Wrangler addon — встроенный инструмент

    • Уже установлен в Blender
    • Ctrl+Shift+F — Noodle (line) to Frame
    • Ctrl+Shift+D — Duplicate from Selected
    • Ctrl+Shift+C — Copy from Selected
  3. Viewer Node shortcuts

    • Ctrl+Shift+Click на сокет — создать Viewer node для этого сокета
    • Ctrl+1, Ctrl+2 и т.д. — переключение между разными Viewer nodes
    • Идеально для быстрой отладки
  4. Reroute nodes (Shift+R)

    • Использование для организации "спагетти" проводов
    • Значительно улучшает читаемость
    • Можно добавлять комментарии

Работа с параметрами

  1. Создание параметров через Shift+L

    • Выделите сокет
    • Нажмите Shift+L
    • Параметр автоматически появится в Group Input и в modifier panel
  2. Быстрое переименование

    • Правый клик на сокет → Rename Socket
    • Хорошие имена экономят время при работе с модификатором
  3. Значения по умолчанию

    • Используйте Value nodes перед подключением к Group Input
    • Устанавливает default значение параметра

Оптимизация производительности

  1. Preview vs Render mode

    • Отключайте на время разработки (глаз в модификаторе)
    • Значительно ускоряет работу на сложных node trees
    • Включайте только для финального просмотра
  2. Выделение критических ошибок

    • Красное выделение на сокетах = ошибка типа данных
    • Жёлтое предупреждение = потенциальная проблема
    • Всегда проверяйте эти символы!
  3. Использование Comments

    • Shift+A → Annotation (не нода, а комментарий)
    • Пишите пояснения прямо в node tree
    • Помогает вам и вашим коллегам

МОДУЛЬ 1.2: РАБОТА С ГЕОМЕТРИЕЙ — MESH OPERATIONS

Концепция: Трансформация как Basis всего

В Geometry Nodes практически всё сводится к трансформации геометрии. Основные операции:

  1. Positional transformation — изменение координат (Set Position)
  2. Topological transformation — изменение структуры (Subdivide, Extrude)
  3. Boolean operations — логические операции (Union, Difference, Intersect)
  4. Attribute manipulation — работа с данными (colors, weights, etc.)

Ключевые ноды (УРОВЕНЬ 1.2)

Set Position — Основная нода для деформации

Назначение: Переместить вершины в новые позиции

Входы:

  • Geometry — исходная геометрия
  • Position — новые абсолютные координаты (X, Y, Z)
  • Offset — добавочное смещение к текущей позиции
  • Selection — (опционально) выбор каких вершин менять

Разница между Position и Offset:

Параметр Действие Пример
Position Устанавливает абсолютные координаты Position = (0, 0, 5) → все вершины на высоте Z=5
Offset Добавляет смещение к текущей позиции Offset = (0, 0, 1) → поднять на 1 единицу выше

Самый частый паттерн (95% случаев):

Position node (текущая позиция)
    ↓
Vector Math Operation (добавить, масштабировать, и т.д.)
    ↓
Set Position Offset (применить смещение)

Примеры:

Пример 1: Простое поднятие на фиксированное значение

Set Position
  → Offset: (0, 0, 5)

Пример 2: Волна (используя синус)

Position node
  ↓
Math (Sine) с масштабированием по X
  ↓
Multiply (масштаб амплитуды)
  ↓
Set Position Offset

Transform Geometry — Глобальная трансформация

Назначение: Перемещение, поворот, масштабирование всей геометрии

Входы:

  • Translate (Движение) — вектор смещения
  • Rotate — ось и угол вращения
  • Scale — масштаб

Когда использовать:

  • Перемещение инстансов
  • Масштабирование результата
  • Вращение конечного результата

Extrude Mesh — Выдавливание граней

Назначение: Выдавить грани наружу, создавая объём

Входы:

  • Selection — какие грани выдавливать (Boolean)
  • Offset — расстояние выдавливания

Примеры:

  • Создание ячеистых структур
  • Создание шипов на поверхности
  • Создание объёма из плоского меша

Subdivide Mesh — Подразделение

Назначение: Добавить новые вершины в mesh (увеличить детальность)

Входы:

  • Number Cuts — сколько раз разделить каждое ребро

Примеры:

  • Подготовка к деформации (для плавного изгиба нужны вершины)
  • Увеличение деталей для анимации
  • Создание более мягкого mesh

Mesh Boolean — Булевы операции

Назначение: Логические операции между двумя mesh (объединение, вычитание, пересечение)

Режимы:

  • Union — объединить (сумма)
  • Difference — вычесть (A - B)
  • Intersect — пересечение (только общая часть)

Входы:

  • Mesh A, Mesh B — две геометрии для операции
  • Solver: Float (быстро, но может быть неточно) vs Exact (медленнее, точнее)
  • Self Intersection: включить для сложных случаев

Частые проблемы:

  1. Boolean не работает = часто из-за неправильной топологии
  2. Решение = используйте Exact solver, включите Self Intersection
  3. Нормали неправильные = пересчитайте нормали или используйте опции в Boolean

Лучшие туториалы (УРОВЕНЬ 1.2)

Про Set Position

  1. Set Position Control Each Point - YouTube

    • Сводка: Детальное 20-минутное объяснение Set Position с примерами
    • Длительность: ~20 минут
    • Уровень: Новичок
    • Изучите: Основные паттерны использования
  2. Set Position from Scratch - YouTube

    • Сводка: Пошаговое введение, очень медленно (хорошо для новичков)
    • Длительность: ~30 минут
    • Уровень: Совсем новичок
  3. Blender Manual - Set Position Node

    • Сводка: Официальная документация с примерами
    • Формат: Текст + иллюстрации
    • Рекомендация: Используйте как справочник

Про Boolean операции

  1. How to Use Mesh Booleans - Artistic Render

    • Сводка: Подробное руководство по Boolean с примерами
    • Длительность: Статья (читается ~15 минут)
    • Полезность: ВЫСОКАЯ для практики
  2. Boolean 100x Faster Trick - YouTube

    • Сводка: Техника оптимизации Boolean для быстрой работы
    • Длительность: ~5 минут
    • Уровень: Средний
    • Важность: Высокая для production

Про Mesh операции в целом

  1. Simon Thommes - Working with Geometry - Blender Studio

    • Сводка: Профессиональный разбор mesh операций
    • Длительность: ~1.5 часа
    • Уровень: Начинающий-Средний
    • Важность: ОЧЕНЬ ВЫСОКАЯ
  2. Bradley Animation - Transform Basics - YouTube

    • Сводка: Основы трансформации в Geometry Nodes
    • Длительность: ~25 минут
    • Уровень: Новичок

Распространённые проблемы (УРОВЕНЬ 1.2)

Проблема 1: "Set Position не делает ничего"

Причина:
Путаница между Position (абсолютное положение) и Offset (смещение).

Решение:

Правильно: Set Position с Offset для смещения
Position node → Vector Math (Add с offset) → Set Position Offset

Неправильно: Set Position с Position = 0
(это поместит все вершины в начало координат!)

Проблема 2: "Boolean создаёт артефакты или не работает"

Причина:

  1. Самопересечение геометрии
  2. Non-manifold топология
  3. Неправильный режим solver

Решение:

  1. Включите Self Intersection опцию
  2. Используйте Exact solver вместо Float
  3. Перед Boolean применяйте Merge by Distance для очистки
  4. Убедитесь что оба mesh имеют правильные нормали (Ctrl+N recalculate)

Проблема 3: "Нормали (освещение) неправильные после операций"

Причина:
Geometry Nodes не пересчитывает нормали автоматически после трансформации.

Решение:
Добавьте в конец node tree:

Group Output Geometry
    ↑
Set Shade Smooth (если нужны smooth нормали)

Или используйте опции внутри Boolean узла для управления нормалями.


Практический проект P1.2: "Волнистая поверхность"

Сложность: Начинающий
Время: 30-45 минут
Используемые ноды: Position, Math (Sine), Set Position

Описание:
Создание простой деформирующейся поверхности с волновым эффектом.

Шаги:

  1. Создайте большую плоскость (Shift+A → Mesh → Plane, масштабируйте)
  2. Добавьте Subdivision Surface modifier для деталей (2-3 уровня)
  3. Добавьте Geometry Nodes modifier
  4. В node tree:
    • Position node → получить текущие координаты
    • Math (Sine) → вычислить синус от координаты Y
    • Scale (результат, например на 2) → амплитуда волны
    • Set Position (Offset) → применить Z смещение на основе синуса

Результат: Красивая волнистая поверхность!


(Продолжение с Модулем 1.3 и далее - курс очень большой)

МОДУЛЬ 1.3: РАБОТА С ТОЧКАМИ И ИНСТАНСАМИ

Концепция: "Scatter на стероидах"

Это основная техника для рассеивания объектов. Концептуально очень простая:

Шаг 1: Возьмите поверхность
       ↓ Distribute Points on Faces
       
Шаг 2: Облако точек на поверхности
       ↓ Instance on Points
       
Шаг 3: На каждой точке копия объекта
       ↓ (опционально) Realize Instances
       
Шаг 4: Реальная геометрия инстансов

Ключевые ноды

Distribute Points on Faces — Главная нода для scatter

Назначение: Создать облако точек на поверхности mesh

Входы:

  • Mesh — входная сетка
  • Selection — выбор каких граней использовать (Boolean)
  • Density (для Random и Poisson режимов) — количество точек на единицу площади
  • Seed — рандомизировать расположение

Выходы:

  • Points — облако точек (Point Cloud)
  • Rotation — автоматическая ротация для каждой точки (по нормали)
  • Stable ID — уникальный ID каждой точки (для консистентной рандомизации)

Режимы (выбор важен!):

Режим Скорость Качество Когда использовать
Random Очень быстро Может пересекаться Быстрый прототип, много точек
Poisson Disk Медленнее Красивое равномерное распределение Финальный результат, природные распределения
Fixed Средне Точное количество и позиции Когда нужна сетка точек

Пример базового рассеивания:

Geometry Input
  ↓
Distribute Points on Faces (Poisson Disk, density = 5)
  ↓
Random Value (для rotation)
  ↓
Instance on Points (с вашим объектом)
  ↓
Group Output

Instance on Points — Создание инстансов

Назначение: На каждую точку поместить копию объекта

Входы:

  • Points — облако точек
  • Instance — какой объект инстансировать
  • Rotation — ротация каждой копии
  • Scale — масштаб каждой копии
  • Pick Instance — выбор случайного инстанса из Collection

Ключевое отличие от Geometry to Instance:

  • Geometry to Instance = делает из одного объекта инстанс
  • Instance on Points = берёт готовый инстанс и копирует его на каждую точку

Пример с рандомизацией:

Instance on Points:
  → Rotation: Random Value (0 до 360 в Z оси)
  → Scale: Random Value (0.8 до 1.2) для вариаций размера

Лучшие туториалы (УРОВЕНЬ 1.3)

  1. How to Scatter Objects - Artistic Render

    • Сводка: Полное руководство по scatter системе
    • Длительность: Статья (~30 минут чтения)
    • Содержит: Все основные техники
  2. Distributing Exact Numbers - YouTube

    • Сводка: Как контролировать точное количество точек
    • Длительность: ~10 минут
    • Уровень: Начинающий
  3. Instance Objects - Usama Babar

    • Сводка: Использование grid distribution
    • Формат: Письменное руководство

Практический проект P1.3: "Лес миниатюрных деревьев"

Сложность: Начинающий-Средний
Время: 1-2 часа
Используемые ноды: Distribute Points, Random Value, Instance on Points, Join Geometry

Описание:
Процедурный лес с разными типами деревьев, рандомными высотами и ориентациями.

Что вы изучите:

  • Основное рассеивание точек
  • Рандомизация параметров
  • Работа с Collection для разных объектов
  • Join Geometry для объединения

МОДУЛЬ 1.4: CURVES — РАБОТА С КРИВЫМИ

Концепция: Кривые как параметрическая геометрия

Кривые в Blender — это параметрическая геометрия, определяемая контрольными точками и касательными (handles).

Зачем нужны кривые в Geometry Nodes?

  1. Создание путей и маршрутов
  2. Деформация по кривой
  3. Создание трубок и дорог
  4. Базис для сложных структур

Ключевые ноды

Curve Primitives — Создание базовых кривых

Доступные примитивы:

  • Line — прямая линия
  • Circle — круг
  • Arc — дуга
  • Spiral — спираль
  • Quadrilateral — четырёхугольник
  • Bezier Segment — сегмент Безье

Пример: Создание спирали

Curve Spiral (radius = 5, height = 10, resolution = 32)
  ↓
Curve to Mesh (с Profile Circle)
  ↓
Group Output (получился винт!)

Curve to Mesh — Конвертирование кривой в меш

Назначение: Создать 3D геометрию из кривой

Входы:

  • Curve — входная кривая
  • Profile Curve — форма поперечного сечения
  • Fill Caps — закрыть ли концы

Как это работает:

Curve Line (путь)
  +
Profile Curve Circle (сечение)
  ↓
Curve to Mesh
  ↓
Результат: цилиндр вдоль пути!

Примеры:

  • Дороги (выкладка вдоль спирали)
  • Трубы и шланги
  • Волосы и растительность
  • Верёвки и кабели

Лучшие туториалы (УРОВЕНЬ 1.4)

  1. Curves for Beginners - YouTube

    • Сводка: Полное введение в кривые в GN
    • Длительность: ~25 минут
    • Уровень: Новичок
  2. Your Guide to Curves in GeoNodes - YouTube

    • Сводка: Полный guide со множеством примеров
    • Длительность: ~40 минут
    • Уровень: Начинающий-Средний
    • Рекомендация: ОЧЕНЬ ПОЛЕЗНО
  3. Instances on Curves - Nathan's 3D Factory

    • Сводка: Как размещать объекты вдоль кривых
    • Длительность: ~20 минут
    • Уровень: Средний

Практический проект P1.4: "Спиральная башня"

Сложность: Средний
Время: 1-1.5 часа
Используемые ноды: Curve Spiral, Instance on Points, Curve to Points

Описание:
Создание винтовой башни с помещением кубов или других объектов на каждый виток спирали.


ПРАКТИЧЕСКИЙ ПРОЕКТ УРОВНЯ 1

🌸 ПРОЕКТ R.1: "Процедурный лес"

Сложность: Beginner-Intermediate
Время: 3-4 часа
Навыки: Distribute Points, Instance on Points, Random Value, Collection Info, Join Geometry

Описание:
Создание красивого процедурного леса с разными типами деревьев, естественным распределением и красивой композицией.

Что вы изучите:

  • Scatter системы
  • Работа с Collection для разнообразия
  • Рандомизация параметров
  • Оптимизация через инстансы
  • Композиция и распределение

Лучшие туториалы:

  1. Forest Creation - Bradley Animation — полный разбор
  2. Procedural Trees - Entagma — профессиональные техники
  3. Scatter Forest System - YouTube — быстрая версия

Результат: Полностью процедурный лес который можно параметризировать и изменять!


Навигация

Авторы

  • Volumorph - @volumorph
  • David "Dr. Strange" Ayrapetian - @david_ayrapetiann
  • Maxim "Dr. Artist" Zhuravlev - @WhiteCatWeb
  • Manachrome Factory - @Manachrome_Factory
  • Artyom "Биполярыч" Sidorov - @artyomsidorov25
  • Pepsied "Cola" - @pepsiedina